Chart for WPF/Silverlight
Observable コレクション
グラフ機能 > データ連結 > Observable コレクション

WPF/Silverlight には、ObservableCollection という特別な汎用コレクションクラスがあります。このコレクションは、項目が追加または削除されたり、リスト全体が更新される場合に、更新に関する通知を提供します。このクラスのインスタンスをチャートのデータソースとして使用すると、チャートはコレクション内で行われた変更を自動的に反映します。

コードで、System.Collections.ObjectModel 名前空間をページ(および C1.WPF.C1Chart または C1.Silverlight.C1Chart)に追加します。これには ObservableCollection が含まれます。

C#
コードのコピー
using System.Collections.ObjectModel;
using C1.WPF.C1Chart;
C#
コードのコピー
using System.Collections.ObjectModel;
using C1.Silverlight.C1Chart;

次に、Point 型の ObservableCollection を宣言します。これがチャートのデータソースになります。

C#
コードのコピー
ObservableCollection<Point> points = new ObservableCollection<Point>();

設定済みのすべてのチャートデータ(存在する場合)をクリアしてから、ポイントコレクションにダミーデータを挿入します。

C#
コードのコピー
//チャートデータをクリアします
c1Chart1.Data.Children.Clear();
//ダミーデータを作成します
points.Add(new Point(0, 20));
points.Add(new Point(1, 22));
points.Add(new Point(2, 19));
points.Add(new Point(3, 24));
points.Add(new Point(4, 29));
points.Add(new Point(5, 7));
points.Add(new Point(6, 12));
points.Add(new Point(7, 15));

次に、このコレクションに連結された XYDataSeries を作成し、チャートに追加します。

C#
コードのコピー
//C1Chart データ系列を設定します
XYDataSeries ds = new XYDataSeries();
ds.Label = "Series 1";
//データ系列をコレクションに連結します
ds.ItemsSource = points;
//ItemsSource を使用する場合は、連結を設定することが重要です
ds.ValueBinding = new Binding("Y");
ds.XValueBinding = new Binding("X");
//データ系列をチャートに追加します
c1Chart1.Data.Children.Add(ds);

ポイントのコレクションをデータ系列の ItemsSource に直接連結することができます。また、Point オブジェクトの X および Y フィールドに ValueBinding (Y) と XValueBinding を指定することも重要です。カスタムビジネスオブジェクトの場合と同様に、データ系列の値を目的のフィールドに連結する必要があります。その後、データ系列をチャートのデータコレクションに追加します。この方法によれば、複数のデータ系列を簡単に追加できます。

関連トピック